Сплайн Эрмита

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис

Кубический эрмитов сплайнсплайн, построенный из кубических полиномов с использованием эрмитовой интерполяции, в соответствии с которой интерполируемая функция задается не только своими значениями в n точках, но и её первыми производными. Для заданной интерполяционной сетки [math]\displaystyle{ x_k }[/math] для [math]\displaystyle{ k=1,...,n }[/math], и заданного значения независимой переменной x вычисление функции проводится в соответствующем интервале [math]\displaystyle{ (x_k, x_{k+1}) }[/math] с известными граничными значениями функции p и её производной m. Для упрощения вычислений делается замена независимой переменной x на независимую переменную t по формуле [math]\displaystyle{ t = (x-x_k)/(x_{k+1}-x_k) }[/math]. В результате такой замены левая граница интервала становится равной 0, а правая 1. Кубический полином, служащий для вычисления интерполируемой функции в соответствующем интервале имеет вид:

[math]\displaystyle{ \boldsymbol{p}(t) = (2t^3-3t^2+1)\boldsymbol{p}_k + (t^3-2t^2+t)(x_{k+1}-x_k)\boldsymbol{m}_k + (-2t^3+3t^2)\boldsymbol{p}_{k+1} +(t^3-t^2)(x_{k+1}-x_k)\boldsymbol{m}_{k+1} }[/math]

В вышеприведенной формуле значения производных относятся к независимой переменной t. Для их вычисления необходимо исходные значения производных умножить на длины интервалов [math]\displaystyle{ x_{k+1}-x_{k} }[/math]. Как следует из формулы, значение интерполируемой функции вычислятся с помощью четырёх кубических полиномов [math]\displaystyle{ h_{00}(t),h_{10}(t),h_{01}(t),h_{11}(t) }[/math]. Эти полиномы отнюдь не являются классическими полиномами Эрмита, как об этом сказано в англоязычной версии статьи. На практике обычно известны лишь значения функции в узловых точках, но не значения первой производной. Для вычисления значений первой производной используются различные способы. Простейшим является вычисление среднего арифметического значения разделенных первых разностей на двух соседних интервалах.

[math]\displaystyle{ \boldsymbol{m}_k = \frac{\boldsymbol{p}_{k+1}-\boldsymbol{p}_{k}}{2(x_{k+1}-x_{k})} + \frac{\boldsymbol{p}_{k}-\boldsymbol{p}_{k-1}}{2(x_{k}-x_{k-1})} }[/math]

В так называемом кардинальном сплайне используется формула

[math]\displaystyle{ \boldsymbol{m}_k = (1-c)\frac{\boldsymbol{p}_{k+1}-\boldsymbol{p}_{k-1}}{x_{k+1}-x_{k-1}} }[/math]

В этой формуле параметр c изменяется от 0 до 1. В соответствии с этой формулой производная в середине отрезка равняется разделённой первой разности на всем отрезке, умноженной на некий коэффициент. В случае с = 0 формула называется сплайном Катмалла-Рома (базовым сплайном).

См. также

Литература

Роджерс Д., Адамс Дж. Математические основы машинной графики. — М.: Мир, 2001. — 604 с. — ISBN 5-03-002143-4.